home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2.sit
/
Raven 1.2
/
Source
/
Foundation
/
Broadcaster
/
ZStateBroadcaster.h
< prev
next >
Wrap
Text File
|
1997-08-29
|
3KB
|
94 lines
/*
* File: ZStateBroadcaster.h
* Summary: Singleton used to broadcast state changes.
* Written by: Jesse Jones
*
* Copyright ゥ 1996-1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <2> 8/29/97 JDJ Added kActivatingWindow and kDeactivatingWindow.
* <1> 6/15/96 JDJ Created
*/
#pragma once
#include <ZBroadcaster.h>
//-----------------------------------
// Constants
//
const long kTargetChanged = 'TRGC'; // a new MCommander target has been switched in, data has the new MCommander pointer
const long kStartingApp = 'StAp';
const long kQuittingApp = 'QtAp';
const long kSuspendingApp = 'SpAp';
const long kResumingApp = 'RsAp';
const long kOpeningWindow = 'OpWn'; // data will have the TWindow pointer
const long kClosingWindow = 'ClWn';
const long kShowingWindow = 'ShWn';
const long kHidingWindow = 'HdWn';
const long kActivatingWindow = 'AcWn';
const long kDeactivatingWindow = 'DcWn';
const long kRenamingWindow = 'RnWn';
// ===================================================================================
// struct SStateMessage
// ===================================================================================
struct SStateMessage {
long mesg;
const void* data;
SStateMessage(long message, const void* info = nil) {mesg = message; data = info;}
};
// ===================================================================================
// class TStateBroadcaster
// ===================================================================================
class TStateBroadcaster : public MBroadcaster<SStateMessage> {
typedef MBroadcaster<SStateMessage> Inherited;
//-----------------------------------
// Initialization/Destruction
//
public:
static TStateBroadcaster* Instance();
protected:
virtual ~TStateBroadcaster();
TStateBroadcaster();
private:
TStateBroadcaster(const TStateBroadcaster& rhs);
TStateBroadcaster& operator=(const TStateBroadcaster& rhs);
//-----------------------------------
// Inherited API
//
public:
virtual void Broadcast(const SStateMessage& message) const;
void Broadcast(long mesg, const void* data) const {this->Broadcast(SStateMessage(mesg, data));}
//-----------------------------------
// New API
//
protected:
#if DEBUG
virtual void TraceMessage(const SStateMessage& message) const;
#endif
//-----------------------------------
// Member data
//
protected:
static TStateBroadcaster* msInstance;
};